package ar.edu.utn.frsf.proyectofinal.sistemadecontrolmodbus.devicecontroller;

import java.util.Date;
import java.util.Vector;
import java.util.concurrent.BlockingQueue;

import net.wimpi.modbus.io.ModbusTransport;
import net.wimpi.modbus.msg.ModbusRequest;

import ar.edu.utn.frsf.proyectofinal.sistemadecontrolmodbus.devicecontroller.command.Command;

public interface DeviceController {
	
	public void poolDevice();
	public void actualizeDevice();
	public void processCommands();
	public void executeCommand(Command cmd);
	public Date getLastResponde();
	public ProcessImageDated getImage();
	
	public void setRequestSocket(ModbusTransport requestSocket);
	public void setActualizationSocket(ModbusTransport actualizationSocket);
	public void setTransactionNumber(int transactionNumber);
	public void setUnitNumber(int unitNumber);
	public void setPoolingRequests(Vector<ModbusRequest> poolingRequests);
	public void setPoolingTime(int poolingTime);
	public void setCommandsQueue(BlockingQueue<Command> commandsQueue);
	public void flushCommandQueue();
	public ImageChangeListener getPImageListener();
	public void setPImageListener(ImageChangeListener pImageListener);
	
}
